<?php
class pBaseAction extends Action{

    public function _initialize(){
        //是否登录检查
        if(false===array_key_exists(C('user_auth_key'), $_SESSION)) {
           $this->redirect('Public/login');
           exit;
       }
        // 用户权限检查
		if(C('user_auth_on') && !in_array(MODULE_NAME,explode(',',C('not_auth_module')))){
			import ('@.Util.RBAC');
			if(!RBAC::AccessDecision()){
				if(!$_SESSION [C( 'user_auth_key' )]){
                    redirect (PHP_FILE.C('user_auth_gateway'));
				}
				if(C( 'rbac_error_page')){
					redirect ( C ( 'rbac_error_page' ));
				}else{
					if (C ( 'guest_auth_on' )) {
						$this->assign( 'jumpUrl', PHP_FILE . C ( 'user_auth_gateway' ) );
					}
					$this->error( L ( '_valid_access_' ));
				}
			}
		}

    }

    /**
     * 从GET中获取值（默认是id）
     */
    protected function getId($name='id'){
        return (array_key_exists($name,$_GET)) ? intval($_GET[$name]) : false;
    }

    /**
     * simpleReturn,此方法执行将导致exit
     * @see ThinkPHP/Lib/Think/Core/Action#ajaxReturn($data, $info, $status, $type)
     * @param <Model> $dao 模型对象
     * @param <boolean> $result $dao执行操作后的返回值，可直接传入true或者false，根据此值决定状态的真假
     * @param <string> $successMsg 成功时的消息，可具体定制。失败时同会从$dao中取错误信息
     */
    protected function simpleReturn($dao,$result,$successMsg=''){
        $status = !(false===$result);
        parent::ajaxReturn(null,($status) ? $successMsg : $dao->getError(),$status);
    }

    /**
     * 操作结果反馈页面
     *
     * @param <type> $msg 主提示信息，格式为"动词+名词+操作状态"
     * @param <type> $info　副提示信息
     * @param <array> $operate　操作定义，"操作名称"=>"操作链接"
     * @param <type> $type 反馈类型
     */
    protected function fail($msg,$info='',$operates='',$type='fail') {
        if(!$operates) {
            $operates[]=array('返回','back');
        }
        $this->assign('msg', $msg);
        $this->assign('urls', $operates);
        $this->assign('info', $info);
        $this->assign('type', $type);
        parent::display('Public:result');
    }
    protected function ok($msg,$info='',$operate=''){
        return $this->fail($msg, $info, $operate,'success');
    }

    /**
     * 从GET中获取查询字段 【默认以and连接各个查询字段】
     *
     * @param <array> $conds 要获取的条件数组：array('name'=>'查询字段','prefix'=>'字段前缀')
     * @return <string> $str where查询条件
     */
    public function getQueryCond($conds){
    }


}
